home *** CD-ROM | disk | FTP | other *** search
-
-
-
- CCCCLLLLAAAASSSSRRRR((((3333FFFF)))) CCCCLLLLAAAASSSSRRRR((((3333FFFF))))
-
-
-
- NNNNAAAAMMMMEEEE
- CLASR - perform the transformation A := P*A, when SIDE = 'L' or 'l' (
- Left-hand side ) A := A*P', when SIDE = 'R' or 'r' ( Right-hand side )
- where A is an m by n complex matrix and P is an orthogonal matrix,
-
- SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
- SUBROUTINE CLASR( SIDE, PIVOT, DIRECT, M, N, C, S, A, LDA )
-
- CHARACTER DIRECT, PIVOT, SIDE
-
- INTEGER LDA, M, N
-
- REAL C( * ), S( * )
-
- COMPLEX A( LDA, * )
-
- PPPPUUUURRRRPPPPOOOOSSSSEEEE
- CLASR performs the transformation consisting of a sequence of plane
- rotations determined by the parameters PIVOT and DIRECT as follows ( z =
- m when SIDE = 'L' or 'l' and z = n when SIDE = 'R' or 'r' ):
-
- When DIRECT = 'F' or 'f' ( Forward sequence ) then
-
- P = P( z - 1 )*...*P( 2 )*P( 1 ),
-
- and when DIRECT = 'B' or 'b' ( Backward sequence ) then
-
- P = P( 1 )*P( 2 )*...*P( z - 1 ),
-
- where P( k ) is a plane rotation matrix for the following planes:
-
- when PIVOT = 'V' or 'v' ( Variable pivot ),
- the plane ( k, k + 1 )
-
- when PIVOT = 'T' or 't' ( Top pivot ),
- the plane ( 1, k + 1 )
-
- when PIVOT = 'B' or 'b' ( Bottom pivot ),
- the plane ( k, z )
-
- c( k ) and s( k ) must contain the cosine and sine that define the
- matrix P( k ). The two by two plane rotation part of the matrix P( k ),
- R( k ), is assumed to be of the form
-
- R( k ) = ( c( k ) s( k ) ).
- ( -s( k ) c( k ) )
-
-
- AAAARRRRGGGGUUUUMMMMEEEENNNNTTTTSSSS
- SIDE (input) CHARACTER*1
- Specifies whether the plane rotation matrix P is applied to A on
- the left or the right. = 'L': Left, compute A := P*A
-
-
-
- PPPPaaaaggggeeee 1111
-
-
-
-
-
-
- CCCCLLLLAAAASSSSRRRR((((3333FFFF)))) CCCCLLLLAAAASSSSRRRR((((3333FFFF))))
-
-
-
- = 'R': Right, compute A:= A*P'
-
- DIRECT (input) CHARACTER*1
- Specifies whether P is a forward or backward sequence of plane
- rotations. = 'F': Forward, P = P( z - 1 )*...*P( 2 )*P( 1 )
- = 'B': Backward, P = P( 1 )*P( 2 )*...*P( z - 1 )
-
- PIVOT (input) CHARACTER*1
- Specifies the plane for which P(k) is a plane rotation matrix. =
- 'V': Variable pivot, the plane (k,k+1)
- = 'T': Top pivot, the plane (1,k+1)
- = 'B': Bottom pivot, the plane (k,z)
-
- M (input) INTEGER
- The number of rows of the matrix A. If m <= 1, an immediate
- return is effected.
-
- N (input) INTEGER
- The number of columns of the matrix A. If n <= 1, an immediate
- return is effected.
-
- C, S (input) REAL arrays, dimension (M-1) if SIDE = 'L' (N-1)
- if SIDE = 'R' c(k) and s(k) contain the cosine and sine that
- define the matrix P(k). The two by two plane rotation part of
- the matrix P(k), R(k), is assumed to be of the form R( k ) = (
- c( k ) s( k ) ). ( -s( k ) c( k ) )
-
- A (input/output) COMPLEX array, dimension (LDA,N)
- The m by n matrix A. On exit, A is overwritten by P*A if SIDE =
- 'R' or by A*P' if SIDE = 'L'.
-
- LDA (input) INTEGER
- The leading dimension of the array A. LDA >= max(1,M).
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- PPPPaaaaggggeeee 2222
-
-
-
-